home *** CD-ROM | disk | FTP | other *** search
/ Resource for Source: C/C++ / Resource for Source - C-C++.iso / codelib7 / v_09_08 / 9n08078b < prev    next >
Encoding:
Text File  |  1995-11-01  |  573 b   |  20 lines

  1.  
  2.         void *xalloc(size_t size)
  3.         {   void *p;
  4.             assert(size);
  5.             BEGIN_TRY { /* get some RAM */
  6.                 if (!(p = malloc(size))) {
  7.                     assert(errno == ENOMEM);
  8.                     FAIL(X_ERRNO);
  9.                 }
  10.             } FAIL_TRY { /* no RAM, so cram */
  11.                 if (X_Error == X_ERRNO)
  12.                     if (errno == ENOMEM)
  13.                         if (CompactMem(size))
  14.                             RETRY;
  15.             } END_TRY;
  16.             assert(p);
  17.             return p;
  18.         }
  19.  
  20.